package com.xbongbong.saas.constant.callcenter;

/**
 * @author 章华隽
 * @mail nefeed@163.com
 * @time 2017-11-01 15:57
 */
public class DuYanCallApiConstant {
    /**
     * 联系人列表 API GET
     * 按联系人的最后联系时间降序排序
     *
     * @param apikey 是 企业的apikey，可通过获取企业apikey接口获取
     * @param page_num 是 页码，从1开始
     * @param page_size 是 每页个数，最大100
     * @param is_recycled 否 是否包含回收站客户，不传不过滤，即所有客户，false：不包含回收站，true：仅回收站的客户
     * @return {
    "total_pages": 22,
    "total_elements": 106,
    "contacts": [{
    "name": "老黑",
    "phone": "18868832064",
    "type": "重要客户",
    "last_follow_up_time": 1509110518629
    }]
    }
     * 总页数 total_pages
     * 总数	total_elements
     * 联系人列表 contacts
     * 联系人姓名 name
     * 主号码 phone
     * 第二联系号码 phone2
     * 第二联系号码 phone3
     * 第三联系号码 code
     * 客户类别 type
     * 上次联系时间 last_follow_up_time
     */
    public static final String API_CONTACT = "/contact";

    /**
     * 通话记录 API GET
     *
     * @param apikey 是 企业的apikey，可通过获取企业apikey接口获取
     * @param team_id 是 团队id，获取方式参照团队API https://open.duyansoft.com/open/team
     * @param member_id 否 坐席id，获取方式参照坐席API https://open.duyansoft.com/open/agent
     * @param target 否 客户电话号码，支持后四位和全号码检索
     * @param code_id 否 电话类别id，获取方式参照电话类别API
     * @param page_num 是 页码，从1开始
     * @param page_size 是 每页个数，最大100
     * @param start_time 是 用于查询一段时间段内通话记录，开始时间的时间戳（毫秒级/包含），起止时间不超过1个月 1505664000000
     * @param end_time 是 用于查询一段时间段内通话记录，截止时间的时间戳（毫秒级/不包含），起止时间不超过1个月 1505979760000
     * @return {
    "total_pages": 22,
    "total_elements": 106,
    "call_logs": [{
    "call_time": 1505962233966,
    "duration": 123,
    "caller": “0571-88123456",
    "callee": "13805711234",
    "type": "OUTBOUND",
    "outcome": "SUCCESS",
    "team": "度言开发团队",
    "agent": "老黑"
    }]
    }
     * 总页数 total_pages
     * 总数	total_elements
     * 呼叫时间 call_time （呼叫时间的时间戳，毫秒级）
     * 通话时长 duration （通话时长，秒为单位）
     * 主叫号码 caller
     * 被叫号码 callee
     * 呼叫类型 type （呼叫类型，INBOUND: 呼入；OUTBOUND：呼出）
     * 呼叫结果 outcome （呼叫结果，SUCCESS: 成功；FAIL：失败）
     * 电话类别 code
     * 电话备注 note
     * 团队名称 team
     * 坐席名称 agent
     * 响铃时长 ring_time 响铃时长，秒为单位
     * 唯一编码 call_uuid	 用于请求录音
     */
    public static final String API_CALL_LOG_LIST = "/call_log";

    /**
     * 获取通话记录详情 API GET
     * 在cti可通过cti sdk callEnd来获取通话的call_uuid，从而来获取通话记录
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param call_uuid 必填 录音id，可在通话记录API接口获取 或 可在cti的DYSDK.callEnd方法中返回得到。
     * @return {
    "duration": 79,
    "note": "销售",
    "caller": "021-60378609",
    "agent": "py03",
    "code": "重要客户",
    "callee": "18868832064",
    "call_time": 1509346072790,
    "ring_time": 12,
    "call_uuid": "aadcf109-9a18-49e2-ab84-3178f113c6df",
    "team": "jackie团队",
    "type": "OUTBOUND",
    "outcome": "SUCCESS"
    }
     * 呼叫时间 call_time （呼叫时间的时间戳，毫秒级）
     * 通话时长 duration （通话时长，秒为单位）
     * 主叫号码 caller
     * 被叫号码 callee
     * 呼叫类型 type （呼叫类型，INBOUND: 呼入；OUTBOUND：呼出）
     * 呼叫结果 outcome （呼叫结果，SUCCESS: 成功；FAIL：失败）
     * 电话类别 code
     * 电话备注 note
     * 团队名称 team
     * 坐席名称 agent
     * 响铃时长 ring_time 响铃时长，秒为单位
     * 唯一编码 call_uuid	 用于请求录音
     */
    public static final String API_CALL_LOG_DETAIL = "/call_log";

    /**
     * 获取未接来电记录 API GET
     * 显示72小时的未接来电记录
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param account_id 必填 员工的account_id
     * @param page_num 是 页码，从1开始
     * @param page_size 是 每页个数，最大10
     * @return {
    "call_logs": [{
    "call_time": 1508932189866,
    "caller": "18868832064"
    }],
    "total_elements": 1,
    "total_pages": 1
    }
     * 总页数 total_pages
     * 总数	total_elements
     * 呼叫时间 call_time （呼叫时间的时间戳，毫秒级）
     * 主叫号码 caller
     */
    public static final String API_CALL_LOG_MISSED_LIST = "/call/missed";

    /**
     * 电话类别 API GET
     *
     * @param apikey 企业的apikey，可通过获取企业apikey接口获取
     * @param team_id 团队id，获取方式参照团队API https://open.duyansoft.com/open/team
     * @return [{"team_id": 10000023, "token": "e711b70d-9529-48a6-b4d7-c78de6f7e911"}]
     * 电话类别id id
     * 电话类别 code
     */
    public static final String API_AGENT_TYPE = "/code";

    /**
     * 即时呼出 API POST
     * 主动建立坐席的电话，通过接口实现坐席的拨号功能
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param caller 必填 企业已分配的电话线路
     * @param callee 必填 有效的电话号码
     * @param Request Payload 中存储JSON脚本对象
     */
    public static final String API_CALL_AUTO = "/call";

    /**
     * 注册加密的拨打号码 API POST
     * 调用cti sdk call方法时，如果目标拨打号码不是完整的号码（如：只有号码后四位），
     * 后台应先调用该api在度言平台注册完整的目标拨打号码（手机号码前无需加“0”）。cti sdk call方法中建议使用后四位调用。
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param account_id 必填 员工的account_id
     * @param target 必填 要注册的目标号码，完整的手机或固定号码
     */
    public static final String API_CALL_SECRET_REGISTER = "/call/register";

    /**
     * 获取加密的注册号码 API GET
     * 当号码加密时，在cti回拨未接来电或者最近通话时无法通过cti sdk callConnecting获取完整号码，
     * 可在connecting后通过该api获取完整号码
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param account_id 必填 员工的account_id
     * @return {"target":"13805711111"}
     * 号码 target
     */
    public static final String API_CALL_SECRET_GET = "/call/target";

    /**
     * 度言的录音的静态路径（可拼接缺省参数直接访问），可用播放器直接播放。（call_time需转化为时间格式且精确到天）GET
     * 缺省{org_id}、{call_time}、{call_uuid}
     *
     * @param org_id 必填 企业的id，可在获取企业信息接口获取
     * @param call_time 必填 电话拨打时间，可在通话记录API接口获取 例 2017-10-17
     * @param call_uuid 必填 录音id，可在通话记录API接口获取
     */
    public static final String URL_CALL_LOG_FILE = "https://resource.duyansoft.com/recording/%s/%s/%s.oga";

    /**
     * 通过度言API获取录音文件的路径，可用播放器直接播放。
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param call_uuid 必填 录音id，可在通话记录API接口获取
     */
    public static final String API_GET_CALL_RECORDING_URL = "/call/recording";

    /**
     * 移动端拨打电话前调此API注册目标号码（target参数传入） API POST
     * API成功后坐席直接拨打返回结果中的mobile_target号码即可实现和目标号码的连通。ps：坐席当前手机必须和平台登录手机号码一致。
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param account_id 必填 员工的account_id
     * @param target 必填 要注册的目标号码，完整的手机或固定号码
     */
    public static final String API_CALL_MOBILE_TARGET_REGISTER = "/call/register/mobile";

    /**
     * 提交通话录音翻译 API POST
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param call_uuid 必填 电话录音编号
     *
     * @return {"transcription_id": 10079061, "status": "TRANSCRIBING"}
     */
    public static final String API_CALL_TRANSCRIPTION_POST = "/call/transcription";

    /**
     * 通话录音翻译 API POST
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param transcription_id 必填 转录后的编号
     *
     * @return {
            "content": "{\"result\":[{\"silence_duration\":0,\"end_time\":16645,\"speech_rate\":50,\"begin_time\":15450,\"text\":\"哦\",\"channel_id\":0,\"emotion_value\":6.0},{\"silence_duration\":0,\"end_time\":16905,\"speech_rate\":47,\"begin_time\":15640,\"text\":\"好\",\"channel_id\":1,\"emotion_value\":6.0}],\"biz_duration\":18380,\"enable_callback\":false,\"id\":\"788ba4a2186143b3a661382cb9222c41\",\"status\":\"SUCCEED\"}",
            "status": "DONE"
        }
     */
    public static final String API_CALL_TRANSCRIPTION_GET = API_CALL_TRANSCRIPTION_POST;
}
